모델 평가

AI
gemma-4-31b
작성자
익명
작성일
2026.07.11
조회수
3
버전
v1

모델 평가 (Model Evaluation)

1. 개요

모델 평가란 학습된 머신러닝 모델이 새로운 데이터에 대해 얼마나 정확하고 일반화된 예측 성능을 보이는지를 정량적으로 측정하는 과정이다.

모델 평가의 핵심 목적은 모델의 일반화 성능(Generalization Performance)을 확인하는 것이다. 모델이 학습 데이터에만 지나치게 최적화되어 새로운 데이터에서 성능이 급격히 떨어지는 과적합(Overfitting) 현상을 방지하기 위해, 학습에 사용되지 않은 독립적인 테스트 데이터를 통해 모델의 실제 성능을 검증해야 한다.


2. 데이터 분할 전략

모델의 객관적인 평가를 위해 전체 데이터를 서로 겹치지 않는 세 가지 용도로 분할하여 사용한다.

2.1 데이터 세트의 구성

  • 훈련 세트 (Train Set): 모델의 가중치(Weight)와 편향(Bias)을 학습시키는 데 사용되는 데이터.
  • 검증 세트 (Validation Set): 학습 과정 중 하이퍼파라미터(Hyperparameter, 사용자가 직접 설정하는 모델 설정값)를 튜닝하고 최적의 모델 구조를 선택하기 위해 사용되는 데이터.
  • 테스트 세트 (Test Set): 모든 학습과 튜닝이 완료된 후, 최종 모델의 일반화 성능을 단 한 번 측정하기 위해 사용하는 데이터.

2.2 분할 방식 비교

구분 홀드아웃 (Hold-out) 방식 K-폴드 교차 검증 (K-Fold CV)
정의 데이터를 단순 비율(예: 8:2)로 나누는 방식 데이터를 K개 그룹으로 나누어 번갈아 검증하는 방식
장점 계산 비용이 적고 속도가 빠름 데이터 낭비가 적고 평가 결과의 신뢰도가 높음
단점 분할 방식에 따라 성능 편차가 발생할 수 있음 K번의 학습이 필요하여 계산 시간이 오래 걸림
적용 데이터셋의 규모가 매우 클 때 데이터셋의 규모가 작거나 안정적 평가가 필요할 때

3. 분류 모델 평가 지표

분류 모델은 예측 클래스가 실제 클래스와 일치하는지를 판별하며, 이를 위해 혼동 행렬(Confusion Matrix)을 기본으로 사용한다.

3.1 혼동 행렬 (Confusion Matrix)

실제 \ 예측 Positive (긍정) Negative (부정)
Positive (긍정) TP (True Positive) FN (False Negative)
Negative (부정) FP (False Positive) TN (True Negative)
  • TP: 양성을 양성으로 맞게 예측
  • TN: 음성을 음성으로 맞게 예측
  • FP: 음성을 양성으로 틀리게 예측 (Type I Error)
  • FN: 양성을 음성으로 틀리게 예측 (Type II Error)

3.2 주요 평가 지표

  1. 정확도 (Accuracy): 전체 예측 중 정답을 맞춘 비율 $\frac{TP+TN}{TP+TN+FP+FN}$
  2. 정밀도 (Precision): 모델이 양성이라고 예측한 것 중 실제 양성인 비율 $\frac{TP}{TP+FP}$
  3. 재현율 (Recall/Sensitivity): 실제 양성인 데이터 중 모델이 양성으로 맞춘 비율 $\frac{TP}{TP+FN}$
  4. F1-Score: 정밀도와 재현율의 조화 평균. 두 지표의 균형을 측정할 때 사용 $\frac{2 \times Precision \times Recall}{Precision + Recall}$
  5. ROC-AUC:
    • TPR(True Positive Rate): 실제 양성을 양성으로 맞춘 비율 (재현율과 동일)
    • FPR(False Positive Rate): 실제 음성을 양성으로 틀리게 예측한 비율 $\frac{FP}{FP+TN}$
    • 정의: 임계값(Threshold) 변화에 따른 FPR 대비 TPR의 곡선(ROC Curve) 아래 면적을 의미하며, 임계값 변화에 따른 모델의 분류 성능을 종합적으로 나타내는 지표이다. 1에 가까울수록 성능이 우수하다.

3.3 Scikit-learn 구현 예제

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score, roc_auc_score

# 실제값과 예측값 가정 (0: 정상, 1: 질병)
y_true = [0, 1, 0, 1, 0, 1, 0, 0]
y_pred = [0, 1, 0, 0, 0, 1, 1, 0]

print(f"Confusion Matrix:\n{confusion_matrix(y_true, y_pred)}")
print(f"Accuracy: {accuracy_score(y_true, y_pred):.4f}")
print(f"Precision: {precision_score(y_true, y_pred):.4f}")
print(f"Recall: {recall_score(y_true, y_pred):.4f}")
print(f"F1-Score: {f1_score(y_true, y_pred):.4f}")
print(f"ROC-AUC: {roc_auc_score(y_true, y_pred):.4f}")


4. 회귀 모델 평가 지표

회귀 모델은 연속적인 수치를 예측하므로, 예측값과 실제값 사이의 오차(Error)를 측정한다.

4.1 주요 지표 특징

  • MAE (Mean Absolute Error): 오차의 절대값 평균. 직관적이며 이상치(Outlier)의 영향이 적다.
  • MSE (Mean Squared Error): 오차의 제곱 평균. 오차가 클수록 패널티가 커지며 미분이 가능해 최적화에 유리하다.
  • RMSE (Root Mean Squared Error): MSE에 루트를 씌운 값. 실제 타겟 변수와 단위가 일치하여 해석이 쉽다.
  • $R^2$ (결정계수): 모델이 데이터의 분산을 얼마나 설명하는지를 나타내는 지표. 일반적으로 0~1 사이의 값을 가지나, 모델 성능이 매우 낮아 평균값으로 예측하는 것보다 성능이 떨어질 경우 음수($-$) 값이 나올 수 있다.

4.2 Scikit-learn 구현 예제

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import numpy as np

# 실제 집값과 예측 집값 가정 (단위: 억 원)
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.1, 7.8]

mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_true, y_pred)

print(f"MAE (평균 절대 오차): {mae:.4f}")
print(f"MSE (평균 제곱 오차): {mse:.4f}")
print(f"RMSE (평균 제곱근 오차): {rmse:.4f}")
print(f"R2 (결정계수): {r2:.4f}")


5. 모델 성능 분석 및 최적화

5.1 학습 곡선 (Learning Curve) 분석

학습 데이터 양에 따른 훈련 오차와 검증 오차의 변화를 통해 모델의 상태를 진단한다. * 과소적합 (Underfitting): 훈련 오차와 검증 오차가 모두 높게 유지되는 상태이다. 모델이 데이터의 내재된 패턴을 충분히 학습하지 못한 경우로, 모델의 복잡도를 높이거나(더 많은 파라미터 사용) 더 효율적인 특성(Feature)을 추출하여 해결해야 한다. * 과적합 (Overfitting): 훈련 오차는 매우 낮으나 검증 오차가 높은 상태로, 두 곡선 사이에 큰 간격(Gap)이 발생한다. 모델이 학습 데이터의 노이즈까지 학습하여 일반화 능력이 떨어진 경우이며, 데이터 증강, 규제(Regularization) 적용, 모델 단순화(가지치기 등)를 통해 해결해야 한다.

5.2 하이퍼파라미터 튜닝

최적의 성능을 내기 위해 모델의 설정값을 조정하는 과정이다. * Grid Search: 가능한 모든 조합을 시도하는 전수 조사 방식. * Random Search: 정해진 범위 내에서 무작위로 조합을 선택하는 방식. * Bayesian Optimization: 이전 시도 결과를 바탕으로 최적의 값을 확률적으로 찾아가는 효율적인 방식.


6. 평가 시 주의사항 및 한계

6.1 데이터 불균형 (Imbalanced Data)의 함정

데이터셋에서 특정 클래스의 비율이 압도적으로 높을 때(예: 암 진단 데이터에서 정상 99%, 환자 1%), 모든 데이터를 '정상'으로 예측해도 정확도는 99%가 나온다. 이 경우 정확도는 모델의 성능을 대변하지 못하므로 다음과 같은 지표를 확인해야 한다. * F1-Score: 정밀도와 재현율의 조화 평균으로, 불균형 데이터에서 모델의 강건함을 측정한다. * Precision-Recall Curve (PR Curve): 데이터 불균형이 심할 때 ROC 곡선보다 모델의 성능 차이를 더 명확하게 보여준다. * Confusion Matrix: 실제 오분류 양상을 직접 확인하여 어떤 클래스에서 오류가 발생하는지 분석한다.

6.2 비즈니스 목적에 따른 지표 선택 (결정 트리)

비즈니스 상황에 따라 우선시해야 할 지표가 다르다.

graph TD
    A[평가 지표 선택] --> B{문제 유형?}
    B -- 분류 --> C{비즈니스 리스크?}
    B -- 회귀 --> D{오차 특성?}
    C -- "FP가 치명적 (예: 스팸 메일 분류)" --> E[정밀도 Precision 강조]
    C -- "FN이 치명적 (예: 암 진단, 사기 탐지)" --> F[재현율 Recall 강조]
    C -- "균형 잡힌 성능 필요" --> G[F1-Score / AUC]
    D -- "이상치 영향 최소화" --> H[MAE]
    D -- "큰 오차에 강한 패널티 부여" --> I[RMSE / MSE]

6.3 실제 비즈니스 적용 사례

적용 분야 핵심 목표 최우선 지표 이유
금융 사기 탐지 (FDS) 실제 사기 거래를 놓치지 않는 것 Recall 사기를 정상으로 판단(FN)했을 때의 금전적 손실이 매우 큼
스팸 메일 필터링 정상 메일을 스팸으로 분류하지 않는 것 Precision 중요한 업무 메일을 스팸으로 분류(FP)했을 때의 리스크가 큼
부동산 가격 예측 실제 매매가와 예측가의 오차 최소화 RMSE 예측값이 실제값과 크게 벌어지는 경우에 대해 강한 경고가 필요함

7. 부록

7.1 모델 평가 파이프라인 순서도

모델 개발부터 최종 평가까지의 표준 프로세스는 다음과 같다.

graph LR
    A[데이터 수집] --> B[데이터 전처리]
    B --> C[데이터 분할<br/>Train/Val/Test]
    C --> D[모델 학습<br/>Train Set]
    D --> E[성능 검증 및 튜닝<br/>Val Set]
    E --> F[최종 성능 평가<br/>Test Set]
    F --> G[배포 및 모니터링]

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?